﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;
using System.ComponentModel;
namespace Negocios
{
    [DataObject]
  public  class Software_De_ReproducaoBLL
    {
        [DataObjectMethodAttribute (DataObjectMethodType.Insert, true)]
        public bool Insere(SoftwareDeReproducao s)
        {
            try
            {
                return Software_De_Reproducao_DAL.Insere(s.Nome, s.Fabricante, s.Tipo);

            }
            catch (Exception ex)
            {
                
                throw new Exception("Erro ao inserir Entidade" + s.Nome);
            }
        }
        [DataObjectMethodAttribute(DataObjectMethodType.Select, false)]
        public SoftwareDeReproducao Consulta(int codigo)
        {
            DSMPTUDO.T_SOFTWARE_DE_REPRODUCAODataTable softwareDT = Software_De_Reproducao_DAL.ConsultaPorCodigo(codigo);
            if (softwareDT.Count ==1)
                return (new SoftwareDeReproducao(codigo,softwareDT[0].tx_nome, softwareDT[0].tx_fabricante,
                    softwareDT[0].nr_tipo));
            else
                return null;
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
        public static List<SoftwareDeReproducao> ConsultaTodos()
        {
            List<SoftwareDeReproducao> lista = new List<SoftwareDeReproducao>();
            DSMPTUDO.T_SOFTWARE_DE_REPRODUCAODataTable softwareDT = Software_De_Reproducao_DAL.ConsultaTodos();
            for (int i = 0; i < softwareDT.Count; i++)
            {
                SoftwareDeReproducao s = new SoftwareDeReproducao(softwareDT[i].nr_codigo,
                    softwareDT[i].tx_nome, softwareDT[i].tx_fabricante, softwareDT[i].nr_tipo);
                lista.Add(s);
            }
            return lista;


        }
        [DataObjectMethodAttribute(DataObjectMethodType.Update, true)]
        public bool Atualizar(SoftwareDeReproducao s)
        {
            try
            {
                //importei e adicione uma referencia a Dados que é onde está a Sof..DAl 
                return Software_De_Reproducao_DAL.Atualiza(s.Nome, s.Fabricante,
                    s.Tipo, s.Codigo);

            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar Entidade" + s.Nome);
            }

        }

        [DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
        public bool Excluir(SoftwareDeReproducao s)
        {
            try
            {
                return Software_De_Reproducao_DAL.Remove(s.Codigo);
              
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Remover Entidade" + s.Nome);
            }
        }
    }
}